package com.cloudkinto.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 马帮mabang订单表(包含商品)
 * </p>
 * @author hua
 * @since 2024-09-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_order_mabang")
public class OrderMabangDo extends Model<OrderMabangDo> {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    private Long storageId;

    /**
     * 订单id(不同companyId可能订单id相同)
     */
    @TableField("order_id")
    private String orderId;

    /**
     * erp订单号(不同companyId可能订单号相同)
     */
    @TableField("platform_order_id")
    private String platformOrderId;

    /**
     * erp交易号
     */
    @TableField("sales_record_number")
    private String salesRecordNumber;

    /**
     * 马帮企业编号
     */
    @TableField("mb_company_id")
    private Long mbCompanyId;

    /**
     * 海外仓企业编号(同本地companyId)
     */
    @TableField("company_id")
    private Long companyId;

    /**
     * 状态
     */
    @TableField("status")
    private Integer status;

    /**
     * 装箱单url
     */
    @TableField("packing_slip_url")
    private String packingSlipUrl;

    /**
     * erp订单交运时间
     */
    @TableField("order_delivery_time")
    private Date orderDeliveryTime;

    /**
     * 交货时间
     */
    @TableField("ship_time")
    private String shipTime;

    /**
     * 交货日期
     */
    @TableField("ship_date")
    private Date shipDate;

    /**
     * 海外仓渠道编号（马帮上创建的物流渠道编码）
     */
    @TableField("t_warehourse_code")
    private String tWarehourseCode;

    /**
     * 平台英文名称
     */
    @TableField("platformNameEn")
    private String platformNameEn;

    /**
     * 买家名称
     */
    @TableField("buyer_name")
    private String buyerName;

    /**
     * 买家电话1
     */
    @TableField("phone1")
    private String phone1;

    /**
     * 买家电话2
     */
    @TableField("phone2")
    private String phone2;

    /**
     * 买家邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 收件人邮编
     */
    @TableField("post_code")
    private String postCode;

    /**
     * 买家国家二字码
     */
    @TableField("country_code")
    private String countryCode;

    /**
     * 收件人省份
     */
    @TableField("province")
    private String province;

    /**
     * 收件人城市
     */
    @TableField("city")
    private String city;

    /**
     * 收件人区
     */
    @TableField("area")
    private String area;

    /**
     * 收件人详细地址
     */
    @TableField("street1")
    private String street1;

    /**
     * 收件人备用地址
     */
    @TableField("street2")
    private String street2;

    /**
     * 收件人门牌号
     */
    @TableField("doorcode")
    private String doorcode;

    /**
     * 固定值， 表示需要海外仓处理的订单
     */
    @TableField("canship")
    private Boolean canship;

    /**
     * 澳洲GST供应商ID
     */
    @TableField("vendor_id")
    private Long vendorId;

    /**
     * 收件人税号 / 收件人身份证号 / 收件人通关编码
     */
    @TableField("abnnumber")
    private String abnnumber;

    /**
     * 订单币种
     */
    @TableField("currency")
    private String currency;

    /**
     * 订单币种转人民币汇率
     */
    @TableField("currency_rate")
    private BigDecimal currencyRate;

    /**
     * 订单商品总金额
     */
    @TableField("item_total")
    private BigDecimal itemTotal;

    /**
     * 订单金额
     */
    @TableField("order_fee")
    private BigDecimal orderFee;

    /**
     * 货到付款订单标识
     */
    @TableField("cod_flag")
    private Boolean codFlag;

    /**
     * 货到付款金额
     */
    @TableField("cod_value")
    private BigDecimal codValue;

    /**
     * 付款时间
     */
    @TableField("payment_time")
    private Date paymentTime;

    /**
     * 最晚发货时间
     */
    @TableField("latest_delivery_time")
    private Date latestDeliveryTime;

    /**
     * 付款方式
     */
    @TableField("payment_method")
    private String paymentMethod;

    /**
     * 订单包含商品,json列表,元素属性:stockSku,quantity,sellPrice
     */
    @TableField("order_item")
    private String orderItem;

    /**
     * 扩展字段
     */
    @TableField("property_json")
    private String propertyJson;

    /**
     * 订单备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private Date updateTime;

    /**
     * 删除标识
     */
    @TableField("delete_flag")
    @TableLogic
    private Boolean deleteFlag;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
